<?php

namespace App\Repositories;


use App\Models\ImportLog;
use App\Utils\Auth;
use App\Utils\Output;
use App\Utils\Pager;
use Illuminate\Database\Eloquent\Builder;

/**
 * Class ImportLogRepository
 * @package App\Repositories
 */
class ImportLogRepository
{
    function adminPager($params)
    {
        extract($params);
        $query = ImportLog::query();
        if (!empty($keyword)) {
            $query->where('import_logs.file_name', 'like', "%$keyword%");
        }

        if (!empty($start)) {
            $query->where('import_logs.import_time', '>=', $start);
        }

        if (!empty($end)) {
            $query->where('import_logs.import_time', '<=', $end . ' 23:59:59');
        }

        if (!empty($type)) {
            $query->where('import_logs.type', '=', $type);
        }
        Auth::dataAuth($query);

        $query->leftJoin('users', 'users.id', '=', 'import_logs.user_id');
        $query->select(
            'import_logs.id',
            'import_logs.type',
            'import_logs.total',
            'import_logs.success',
            'import_logs.error',
            'import_logs.file_name',
            'users.name',
            'import_logs.import_time'
        );

        return $query->paginate();
    }

    function editInfo($id)
    {
        $entity = ImportLog::find($id);
        if ($entity) {
            return Output::data($entity);
        }
        return Output::fail("数据不存在");
    }

    function get($id)
    {
        $entity = ImportLog::find($id);
        if ($entity) {
            return Output::data($entity);
        }
        return Output::fail("数据不存在");
    }

    function save($data, $id)
    {
        if(!$id){
            $data['import_time'] = time();
            $data['user_id'] = Auth::userId();
        }
        return ImportLog::store($data, $id);
    }

    /**
     * 删除
     * @param $id
     * @return Output|int
     * @throws \Exception
     */
    function destroy($id)
    {
        return ImportLog::destroy($id);
    }
}

